package dfsketches.gr3d;

public abstract class Renderer {

	//NON CONCURRENT!!!!!
	//Сортируем вершины так, чтобы A была верхней,
	//B - правее A (если их высоты совпадают),
	//C - ниже B.
	protected Triangle sortTriangle(Triangle tri) {
		Vertex temp;
		if (tri.b.py > tri.c.py) {
			temp = tri.b;
			tri.b = tri.c;
			tri.c = temp;
		}
		if (tri.a.py > tri.b.py) {
			temp = tri.b;
			tri.b = tri.a;
			tri.a = temp;
		}
		if (tri.b.py > tri.c.py) {
			temp = tri.b;
			tri.b = tri.c;
			tri.c = temp;
		}
		if ((tri.a.py == tri.b.py) &&
				(tri.a.px > tri.b.px)) {
			temp = tri.b;
			tri.b = tri.a;
			tri.a = temp;			
		}
		return tri;
	}
	
	public abstract void render(Triangle tri);

	public abstract void start();
}
